package com.shijie.sjoj.model.utils;

import java.util.Arrays;

/**
 * 字符串数组工具类
 *
 * @author ZSJ
 */
public class StringArrayUtils {

    /**
     * 判断字符串数组是否为空数组
     *
     * @param arr String[]
     * @return boolean
     */
    public static boolean isEmpty(String[] arr) {
        return null == arr || arr.length == 0 || itemsAllEmpty(arr);
    }

    public static boolean notEmpty(String[] arr) {
        return !isEmpty(arr);
    }

    /**
     * 判断数组元素是否全为空字符串
     *
     * @param arr Object[]
     * @return boolean
     */
    private static boolean itemsAllEmpty(String[] arr) {
        return Arrays.stream(arr).filter(StringUtils::notEmpty).toArray().length == 0;
    }

    /**
     * 判断字符串数组是否为空白字符串数组（没有任何有效值）
     *
     * @param arr String[]
     * @return boolean
     */
    public static boolean isBlank(String[] arr) {
        return null == arr || arr.length == 0 || itemsAllBlank(arr);
    }

    public static boolean notBlank(String[] arr) {
        return !isBlank(arr);
    }

    /**
     * 判断数组元素是否全为空白字符串（没有有效值）
     *
     * @param arr Object[]
     * @return boolean
     */
    private static boolean itemsAllBlank(String[] arr) {
        return Arrays.stream(arr).filter(StringUtils::notBlank).toArray().length == 0;
    }


}
